home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / termsorc.lha / Extras / Source / gtlayout-source.lha / LTP_CreateIncrementer.c < prev    next >
C/C++ Source or Header  |  1995-09-24  |  2KB  |  57 lines

  1. /*  GadTools layout toolkit
  2. **
  3. **  Copyright © 1993-1995 by Olaf `Olsen' Barthel
  4. **  Freely distributable.
  5. */
  6.  
  7. #include "gtlayout_global.h"
  8.  
  9. struct Gadget * __regargs
  10. LTP_CreateIncrementer(LayoutHandle *handle,ObjectNode *parentNode,struct Gadget *parentGadget,struct NewGadget *ng,BOOLEAN leftDirection,LONG incAmount)
  11. {
  12.     ObjectNode    *node;
  13.     struct Gadget    *incer;
  14.  
  15.     if(node = LTP_CreateObjectNode(handle,INCREMENTER_KIND,parentGadget -> GadgetID,NULL))
  16.     {
  17.         ng -> ng_LeftEdge    = ng -> ng_LeftEdge + ng -> ng_Width;
  18.         ng -> ng_Width        = 4 + handle -> GlyphWidth + 4;
  19.         ng -> ng_GadgetText    = "";
  20.         ng -> ng_UserData    = node;
  21.         ng -> ng_Flags        = NULL;
  22.  
  23.         node -> Special . Incrementer . Amount = incAmount;
  24.  
  25.         node -> Special . Incrementer . Image = NewObject(LTP_ImageClass,NULL,
  26.             IIA_ImageType,    leftDirection ? IMAGECLASS_LEFTINCREMENTER : IMAGECLASS_RIGHTINCREMENTER,
  27.             IA_Width,    ng -> ng_Width,
  28.             IA_Height,    ng -> ng_Height,
  29.         TAG_DONE);
  30.  
  31.         if(node -> Special . Incrementer . Image)
  32.         {
  33.             if(incer = CreateGadgetA(GENERIC_KIND,handle -> Previous,ng,NULL))
  34.             {
  35.                 incer -> GadgetType    |= GTYP_BOOLGADGET;
  36.                 incer -> Flags        |= GFLG_GADGIMAGE | GFLG_GADGHIMAGE;
  37.                 incer -> Activation    |= GACT_IMMEDIATE | GACT_RELVERIFY;
  38.                 incer -> GadgetRender     = node -> Special . Incrementer . Image;
  39.                 incer -> SelectRender     = node -> Special . Incrementer . Image;
  40.  
  41.                 if(parentNode -> Disabled)
  42.                     incer -> Flags |= GFLG_DISABLED;
  43.  
  44.                 node -> Host = incer;
  45.  
  46.                 node -> Special . Incrementer . Parent = parentGadget;
  47.  
  48.                 return(incer);
  49.             }
  50.             else
  51.                 LTP_DeleteObjectNode(handle,node);
  52.         }
  53.     }
  54.  
  55.     return(NULL);
  56. }
  57.